Project, Target, এবং Task এর পরিচিতি

Java Technologies - অ্যাপাচি অ্যান্ট (Apache ANT) Build ফাইলের বেসিক |
214
214

Apache ANT একটি powerful build automation tool যা সাধারণত Java প্রজেক্টগুলির জন্য ব্যবহৃত হয়। এটি XML ভিত্তিক ফাইল (build.xml) ব্যবহার করে বিল্ড কনফিগারেশন সংজ্ঞায়িত করে। ANT-এর মধ্যে তিনটি গুরুত্বপূর্ণ উপাদান রয়েছে, যা হল Project, Target, এবং Task। এই তিনটি উপাদান একসাথে কাজ করে build প্রক্রিয়া নির্ধারণে এবং কাস্টমাইজ করতে সাহায্য করে।


১. Project (প্রজেক্ট)

Project হল ANT-এর মূল উপাদান যা build ফাইলের মধ্যে সমস্ত টার্গেট ও টাস্ককে ধারণ করে। এটি একটি container যা টার্গেটের মধ্যে নির্দিষ্ট বিল্ড প্রক্রিয়া নির্দেশ করে।

  • প্রকৃত কনফিগারেশন: একটি build.xml ফাইলের প্রথম উপাদান হিসেবে project ট্যাগ থাকে। এটি পুরো build সেশনটি নির্ধারণ করে, যেমন প্রজেক্টের নাম, ভিত্তি ডিরেক্টরি (base directory), ডিফল্ট টার্গেট ইত্যাদি।

উদাহরণ:

<project name="MyProject" default="compile" basedir=".">
    <!-- Project specific configurations go here -->
</project>
  • Attributes:
    • name: প্রজেক্টের নাম।
    • default: ডিফল্ট টার্গেট, যা কোনো টার্গেট উল্লেখ না করলে চলবে।
    • basedir: প্রজেক্টের মূল ডিরেক্টরি। এটি সাধারণত প্রজেক্টের মূল ফোল্ডার নির্দেশ করে।

২. Target (টার্গেট)

Target হল একটি নির্দিষ্ট বিল্ড ধাপ বা কাজ, যা কার্যকর করতে হয়। প্রতিটি টার্গেটের মধ্যে এক বা একাধিক task থাকতে পারে। টার্গেটের মধ্যে নির্দেশিত কাজগুলি সম্পাদিত হবে।

  • Target ট্যাগের মধ্যে কোনো নির্দিষ্ট কাজ (task) করতে নির্দেশ দেওয়া হয়, এবং এর মধ্যে dependencies (অন্য টার্গেটগুলির উপর নির্ভরশীলতা) থাকতে পারে।
  • Target একটি নির্দিষ্ট বিল্ড ধাপ, যেমন compile, clean, test ইত্যাদি।

উদাহরণ:

<target name="compile" depends="clean">
    <javac srcdir="src" destdir="build"/>
</target>

<target name="clean">
    <delete dir="build"/>
</target>
  • Attributes:
    • name: টার্গেটের নাম যা আপনি কমান্ড লাইনে নির্দিষ্ট করে দিতে পারেন।
    • depends: নির্দিষ্ট করে যে টার্গেটটি অন্য কোনো টার্গেটের উপর নির্ভরশীল।

৩. Task (টাস্ক)

Task হল একটি কাজ যা target এর মধ্যে কার্যকর করা হয়। এটি একটি নির্দিষ্ট কর্ম বা প্রক্রিয়া, যেমন ফাইল কপি করা, কম্পাইল করা, বা একটি জাভা ক্লাস তৈরি করা। ANT-এ built-in অনেক ধরনের task রয়েছে এবং আপনি আপনার প্রয়োজন অনুযায়ী কাস্টম টাস্কও তৈরি করতে পারেন।

কিছু সাধারণ built-in task:

  • <javac>: জাভা সোর্স কোড কম্পাইল করা।
  • <copy>: ফাইল কপি করা।
  • <delete>: ফাইল বা ডিরেক্টরি মুছে ফেলা।
  • <mkdir>: ডিরেক্টরি তৈরি করা।

উদাহরণ:

<target name="compile">
    <javac srcdir="src" destdir="build"/>
</target>

<target name="copy-files">
    <copy file="source.txt" tofile="destination.txt"/>
</target>
  • Attributes:
    • প্রতিটি টাস্কের নিজস্ব অ্যাট্রিবিউট থাকে যা কাজটি করতে ব্যবহৃত হয়, যেমন src, dest, file, tofile ইত্যাদি।

Project, Target, এবং Task এর সম্পর্ক

  1. Project: প্রজেক্টের মূল উপাদান। এটি সব টার্গেট এবং টাস্কগুলিকে একত্রিত করে এবং ডিফল্ট টার্গেট নির্ধারণ করে।
  2. Target: একটি নির্দিষ্ট বিল্ড ধাপ বা কাজ যা একাধিক টাস্ক দ্বারা পূর্ণ করা হয়।
  3. Task: নির্দিষ্ট কাজ যা এক বা একাধিক টার্গেটের মধ্যে কার্যকর হয়।

উদাহরণ:

<project name="MyProject" default="build" basedir=".">

    <!-- Clean Target -->
    <target name="clean">
        <delete dir="build"/>
    </target>

    <!-- Compile Target -->
    <target name="compile" depends="clean">
        <javac srcdir="src" destdir="build"/>
    </target>

    <!-- Build Target (default) -->
    <target name="build" depends="compile">
        <echo message="Build complete!"/>
    </target>

</project>

ব্যাখ্যা:

  1. clean টার্গেটটি build ডিরেক্টরি মুছে ফেলে।
  2. compile টার্গেটটি clean টার্গেটের পরে চালানো হয় এবং সোর্স কোড কম্পাইল করে।
  3. build টার্গেটটি compile টার্গেটের পরে চলে এবং বিল্ড সম্পন্ন হওয়ার পর একটি বার্তা প্রিন্ট করে।

সারাংশ

  • Project: প্রজেক্টের মূল কাঠামো, যেখানে সব টার্গেট এবং টাস্ক থাকে।
  • Target: একটি নির্দিষ্ট কাজ বা ধাপ যা বিল্ড প্রক্রিয়ায় সম্পাদিত হবে।
  • Task: একটি নির্দিষ্ট কাজ যা টার্গেটের মধ্যে করা হয় (যেমন কম্পাইল করা, কপি করা ইত্যাদি)।

এগুলি একসাথে একটি পূর্ণাঙ্গ বিল্ড প্রক্রিয়া তৈরি করতে ব্যবহৃত হয় এবং ANT এর মধ্যে বিল্ড কনফিগারেশন খুবই শক্তিশালী এবং কাস্টমাইজযোগ্য।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion